<?php
class CategoriasController extends AppController
{
    public $helpers = array('Js');
    public $components = array('RequestHandler');
    public $cartas;

    public function beforeFilter()
    {

        if ($this->RequestHandler->isAjax()) {
            Configure::write('debug', 0);
        }
    }


    function edit($id = null)
    {
        $this->Categoria->id = $id;
        if ($this->request->is('get')) {
            $this->request->data = $this->Categoria->read();
            $this->verCartasAsignadas($id);
        } else {
            if ($this->Categoria->save($this->request->data)) {
                $this->Session->setFlash('La categoría ha sido  actualizada.','infoMessage',array(),'carta');
            }
            else  $this->Session->setFlash('La categoría no ha podido ser actualizada.','errorMessage',array(),'carta');
        }
    }

    public function index($id = null)
    {

       if ($id != null){
          $this->set("categorias", $this->Categoria->find("all"));
          $this->verCartasAsignadas($id);

       }
        else {
            $this->set("categorias", $this->Categoria->find("all"));
            $this->set("cartasAsignadas", array());


        }
        $this->set('_serialize', array('cartasAsignadas', 'categorias'));
    }


    public function add()
    {

        if ($this->request->is('post')) { //si es un post de un formulario
            $this->Categoria->create();
            if ($this->Categoria->save($this->request->data)) {

                $this->Session->setFlash('La sección ha podido ser guardada.','infoMessage',array(),'carta');
                //$this->redirect(array('controller' => 'pages',  'action' => 'display', 'home'));
            } else {

                $errors = $this->Categoria->invalidFields();
                $error = "";
                //debug($errors['nombre']);
                if (!empty($errors)) $error = $errors['nombre'][0];
                $this->Session->setFlash('La sección no ha podido ser guardada. '.$error,'errorMessage',array(),'carta');
            }
        }
         $this->redirect(array('controller' => 'cartaCategorias','action' => 'addSeccion'));

    }

    function delete($id)
    {
        if (!$this->request->is('post')) {
            throw new MethodNotAllowedException();
        }
        if ($this->Categoria->delete($id)) {
            $this->Session->setFlash('La sección ha sido borrada.','infoMessage',array(),'carta');

            $this->redirect(array('action' => 'index'));
        }
        else   $this->Session->setFlash('La sección no ha podido ser borrada.','errorMessage',array(),'carta');
    }

    function verCartasAsignadas($id){

       // debug("entra".$id);
        $this->loadModel('CartaCategoria');
        $this->loadModel('Carta');
       // $db = $this->CartaCategoria->find('all');
        $this->cartas = $this->CartaCategoria->findAllByIdCategoria($id);
       // debug($db);
        //$this->cartas = array();
        //foreach($db as $cartacat){
          //  debug($cartacat);
          //  $carta = $this->Carta->findById($cartacat['CartaCategoria']['id_carta']);
            //array_push(  $this->cartas, $carta);
       // }
      //  debug($this->cartas);
        $this->set("cartasAsignadas",  $this->cartas);

    }

    function deleteCartaCategoria($cartaCat){
        $this->loadModel('CartaCategoria');
        $this->CartaCategoria->id = $cartaCat;
        $CartaCategoria = $this->CartaCategoria->read();

      //  debug($CartaCategoria['CartaCategoria']['id_categoria']);
        if ($this->CartaCategoria->delete($cartaCat)) {
            $this->Session->setFlash('La relación carta categoria ha sido borrada.');
            $this->redirect(array('action' => 'index', $CartaCategoria['CartaCategoria']['id_categoria']));
        }
       else  $this->redirect(array('action' => 'index'));
    }


}